/*
 * Created on 06.10.2003
 *
 * To change the template for this generated file go to
 * Window>Preferences>Java>Code Generation>Code and Comments
 */
package wfb.definitions;
import java.util.Iterator;
/**
 * @author Tobias Peitzsch
 *
 * To change the template for this generated type comment go to
 * Window>Preferences>Java>Code Generation>Code and Comments
 */
public interface StatDataInterface {
	/** Liefert die Attributnamen der statistischen Daten in der Reihenfolge,
	   * in der die Daten vorliegen.
	   * @return Attributnamen der statistischen Daten in der Reihenfolge,
	   *         in der die Daten vorliegen; die Iterator-Objekte sind Strings
	   */
	public abstract Iterator<String> getAttrNames();
	/** Liefert einen Iterator ueber alle Laender zu denen statistische Daten
	   * vorliegen.
	   * @return Iterator ueber Namen der Laender; die iterierten Objekte sind
	   *         vom Typ String; die Namen der Laender sind alphabetisch
	   *         sortiert
	   */
	public abstract Iterator<String> getCountries();
	/** Liefert Iterator ueber alle Jahr zu denen statistische Daten fuer das
	   * angegebene Land vorliegen.
	   * @param country  Name des Landes fuer das die Jahre zurueckgegeben werden
	   * @return Iterator ueber alle Jahre fuer die Daten fuer dieses Land
	   *         vorliegen oder <code>null</code>, wenn das Land nicht bekannt ist;
	   *         die Jahre sind aufsteigend sortiert
	   */
	public abstract Iterator<String> getYears(String country);
	/** Liefert einen Iterator ueber die statistischen Daten eines Landes fuer
	   * ein bestimmtes Jahr.
	   * @param country  Land fuer das die Daten geliefert werden sollen
	   * @param year  Jahr fuer das die Daten geliefert werden sollen
	   * @return Iterator ueber alle statistischen Daten fuer das angegebene Land
	   *         und Jahr oder <code>null</code>, wenn das Land nicht bekannt ist
	   *         oder kein Eintrag fuer das Jahr zu diesem Land existiert;
	   *         die Daten werden in der Reihenfolge geliefert, wie beim Aufruf
	   *         von getAttrNames(); die Iterator-Objekte sind vom Typ String
	   */
	public abstract Iterator<String> getData(String country, String year);
}